package com.zrrd.gmall.item.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import java.util.concurrent.ArrayBlockingQueue;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;

@Configuration
public class ThreadPoolConfig {

    //注入一个线程池对象
    @Bean
    public ThreadPoolExecutor threadPoolExecutor(){
        /**
         * 线程池7大参数（面试必问）：
         *  1、核心线程数
         *  2、最大线程数
         *  3、空闲线程的存活时间
         *  4、存活的时间单位
         *  5、用于缓存任务的阻塞队列
         *  6、指定创建线程的工厂
         *  7、线程池拒绝添加新任务时采取的策略（拒绝策略）
         */
        return new ThreadPoolExecutor(50,500,30, TimeUnit.SECONDS,new ArrayBlockingQueue<>(10000));
    }
}
